Computer graphics systems, set top box systems or other graphics processing systems typically include a host processor, graphics/video processing circuitry, memory (e.g. frame buffer), and one or more display devices. The host processor may have a graphics application running thereon, that provides vertex data for a primitive (e.g. triangle) to be rendered on the one or more display devices. The display device, for example, a CRT display includes a plurality of scan lines comprised of a series of pixels. The graphics/video processing circuitry receives the vertex data and generates pixel data including the appearance (e.g. color, brightness, texture) attributes which may be presented on the display device according to a particular protocol. The pixel data is typically stored in the frame buffer in locations that correspond to the pixels location on the display device.
FIG. 1 is a schematic representation of a two dimensional display space 10, for example, the visual area of a display device. The display space 10 is represented by a plurality of intersecting horizontal and vertical lines that form pixels 11. A pixel is one of a series of points along a raster scan line that when viewed in the aggregate, provides an image that may be presented on the display device. Line segments 12, 14, 20 and 22 which may be complete lines or portions of larger lines to be drawn on the display space 10, include line ends. For example, line segment 12 includes a line end 13. Typically, conventional graphics processing circuitry renders line ends as screen aligned segments. For example, if vertical line segment 12 is drawn, the corresponding line end 13 will be aligned with the horizontal boundary 16 of the display space 10. If horizontal line segment 14 is drawn, the corresponding line end 15 will be aligned with the vertical boundary 18 of the display space 10.
When non-vertical or non-horizontal line segments are drawn on a display space, the line ends typically will be aligned with the corresponding horizontal and vertical boundaries of the display space; not with the line segment. For example, if line segment 20 is drawn the corresponding line end 21 will be aligned with the horizontal boundary 16 of the display space 10. In the like manner, if line segment 22 is drawn, the corresponding line end 23 will be aligned with the vertical boundary 18 of the display space 10. Such line end alignment results in the rendered line segments 20, 22 or larger image including the line segments, containing visual artifacts (e.g. uneven edges) which degrade image appearance. To compensate for the visual artifacts, software executed by a host processor typically has been used to calculate the ends of non-horizontal and vertical lines, with the calculated line ends subsequently being sent to hardware, such as a graphics chip, for rendering. A drawback associated with using software to calculate the line ends is that it requires the processing of additional primitives which takes up valuable host processor time. In turn, this increases the time required to render an object or image.